1. Field of the Invention
This invention relates to the field of application program sharing between computers.
2. Description of the Related Art
Application sharing involves the simultaneous sharing of one or more application programs between two or more computer users. Typically, the applications reside on a "host" computer, and are shared with one or more remote computers, generally identified as "guests." The monitor of each computer involved in sharing the applications displays some portion of the applications'output. For example, when a word processing application is shared, the monitors display some part of the entered text. All participants are able to move a shared cursor, according to some formal turn-taking mechanism, and make data entries, via a mouse and keyboard, which are reflected on their own display monitor as well as on the monitors'of the other application sharing participants.
A problem arises in the application sharing field when some or all of the monitors involved have different video configurations or, relatedly, differently sized windows in which to view output of the one or more shared applications. Often, for example, one or more guest monitors has a smaller window display for the output of the one or more shared applications than does the host. The guest may choose to minimize the size of its shared application window to maximize the display area available for, for example, an unshared application running locally on the guest. In other instances, the host may simply have a larger display monitor than one or more of the guests. In any event, when the host's shared applications window exceeds in size the area of the one or more guest's shared applications window, the one or more guest is at risk of being unable to view the entire output of the shared applications.
The windows on the host and guest video monitors which display the output of the shared application or a set of shared applications are called the host and guest "viewports", respectively. The viewports essentially are bounding boxes which surround the display windows of the output of all of the applications currently being shared by the host and guest or guests.
In many cases, a host or guest may be entering, editing or pointing to, using its mouse cursor, a portion of the application output which is not visible on the monitor's of other guests, i.e., it is not within the viewport of those guests. This causes miscommunication, confusion and a work slowdown as guests try to determine what part of, for example, a document is being identified by mouse movements or affected by keyboard entries from another participant. Referring now to FIG. 1, a guest monitor 10 is shown. Typically, applications sharing programs provide a pan window 11 on the guest monitor. Pan window 11 typically is free to float about the entire display surface of guest monitor 10. The pan window displays a guest viewport representation 12 superimposed over a host viewport representation 13. The guest viewport representation 12 moves within the host viewport representation 13 to reflect the particular section of application output which is presently being displayed in the guest viewport 14 in relation to its position in the host viewport. A dot 15 reflects the position of the cursor currently being controlled by the host or a guest having "the turn." It also is known as the "shared cursor." If the dot is outside of the guest viewport representation 12, the shared cursor is in a portion of the shared application's output not currently within the display of guest viewport 14.
In conventional systems an affected guest is able to individually alter the display on his respective viewport to include, for example, a desired portion of the application output. The function is carried out by the guest using his mouse to "drag" and "drop" the guest viewport representation 12 within the pan window 11, for example, to encompass dot 15. This causes the output in guest viewport 14 to scroll to display the portion of application output appearing on the host's viewport as represented by the host viewport representation 13 which is encompassed by the bounds of guest viewport representation 12 in pan window 11, and which preferably includes that portion of the output including the shared cursor. This method requires individual guests to continue to constantly refer to pan window 11, for example, to find dot 15, which reflects the current shared cursor position. The shared cursor, however, is often being controlled by another participant and moves frequently. The need for a participant to constantly check pan window 11 for the location of dot 15 will divert the guest's attention from the matter at hand, namely operating on a shared application.
Another unsatisfactory solution to the problem includes limiting the respective window viewports of all participants to ensure compatibility. This unacceptably forces users to restrict their machine configurations when sharing applications.
Yet another unsatisfactory attempt at rectifying the problem is to arbitrarily scale the output from the shared application to fit a preselected guest viewport area. This can result in image-degrading video artifacts in the output on the guest and can cause difficulty in positioning a "shared" cursor in the reproduced output, since the scaling process might have eliminated coordinates from the output on the guest which the shared cursor must find.